// stores/counter.js
import { defineStore } from 'pinia';
import http from '@/utils/request.js'
// 停用pinia是因为，uniapp支持力度不够，连日志都有兼容性问题
export const userStore = defineStore('user', {
	state: () => {
		return {
			token: "",
			userId: null,
			nickName: "",
			avatar: "",
			roles: [],
			permissions: [],
			count1: 1,
			count2: 1
		};
	},
	actions: {
		// 登录
		Login(loginForm) {
			return new Promise((resolve, reject) => {
				http.post("/login", loginForm).then(res => {
					this.token = res.token
					this.GetInfo()
					resolve()
				}).catch(error => {
					reject(error)
				})
			})
		},
		// 获取用户信息
		async GetInfo(store) {
			const res = await http.get("/getInfo")
			console.log(res.user.userId)
			store.commit('SET_USERID', res.user.userId)
			store.commit('SET_NAME', res.user.nickName)
		},
		logOut(store) {

		},
		testc(store) {
			this.count1++;
			this.count2++
		}
	},
	persist: { // ！！！！需要安装持久化插件
		enabled: true, // 持久化开关
		omit: ['count2'], // 不需要持久化的字段
		storage: { // 修改存储方式
			setItem: (key, value) => {
				// console.log("key", key,value)
				uni.setStorage(key, JSON.parse(value)) // 解析为对象
			},
			getItem: (key) => {
				// console.log("key", key)
				const value = uni.getStorageSync(key)
				return value !== undefined ? JSON.stringify(value) : null // 转换为字符串
			},
			removeItem: (key) => {
				// console.log("key", key)
				uni.removeStorageSync(key) // 添加删除方法
			}
		},
		//key: 'userInfo', //指定存储的key名称，不指定的话默认是defineStore的user
	}
});